/*
 *  NoteInfo.h
 *  SoundController0002
 *
 *  Created by jiro on 10/12/05.
 *  Copyright 2010 jiro music. All rights reserved.
 *
 */

#pragma once

#include "Note.h"
#include "WaveTable.h"
#include "WaveFunction.h"

namespace sc {

	class NoteInfo
	{
	public:

		double frequency;

		double duration;

		double dynamics;

		double phaseShift;

		const WaveTable* dynamicsCurve;

	public:

		NoteInfo();

		NoteInfo( const NoteInfo& info );

		NoteInfo( Note::MidiNumber number, double duration, double dynamics, double phaseShift = 0 );

		NoteInfo( double frequency, double duration, double dynamics, double phaseShift = 0 );

		NoteInfo( Note::MidiNumber number, double duration, double dynamics, const WaveTable& dynamicsCurve, double phaseShift = 0 );

		NoteInfo( double frequency, double duration, double dynamics, const WaveTable& dynamicsCurve, double phaseShift = 0 );

		NoteInfo& operator = ( const NoteInfo& info );

		std::string ToString() const;

	};

}
